/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package hxg.portmgr.core.oper.snmp.oidgroup;

import hxg.portmgr.core.oper.snmp.param.AdslParam;
import org.snmp4j.smi.OID;

/**
 *
 * @author hxg
 */
public enum AdslLineProfileConfOID implements AdslOidEntry {

    adslLineConfProfileName(new OID(".1.3.6.1.2.1.10.94.1.1.14.1.1")) {
//        @Override
//        public String chsname() {
//            return "模板名称";
//        }
//
//        @Override
//        public RemoteValueType remoteValueType() {
//            return RemoteValueType.String;
//        }
//
//        @Override
//        public String unit() {
//            return "";
//        }
        @Override
        public AdslParam getParamType() {
            return AdslParam.LineProfileName;
        }
    },
    adslAtucConfRateChanRatio(new OID(".1.3.6.1.2.1.10.94.1.1.14.1.3")) {
//        @Override
//        public String chsname() {
//            return "模式,[0]交织,[100]快速";
//        }
//
//        @Override
//        public String unit() {
//            return "";
//        }
        @Override
        public AdslParam getParamType() {
            return AdslParam.LineProfileRateMode;
        }
    },
    adslAtucChanConfFastMaxTxRate(new OID(".1.3.6.1.2.1.10.94.1.1.14.1.13")) {
//        @Override
//        public String chsname() {
//            return "快速下行";
//        }
        @Override
        public AdslParam getParamType() {
            return AdslParam.FastDown;
        }
    },
    adslAtucChanConfInterleaveMaxTxRate(new OID(".1.3.6.1.2.1.10.94.1.1.14.1.14")) {
//        @Override
//        public String chsname() {
//            return "交织下行";
//        }
        @Override
        public AdslParam getParamType() {
            return AdslParam.InterLeavedDown;
        }
    },
    adslAturChanConfFastMaxTxRate(new OID(".1.3.6.1.2.1.10.94.1.1.14.1.27")) {
//        @Override
//        public String chsname() {
//            return "快速上行";
//        }
        @Override
        public AdslParam getParamType() {
            return AdslParam.FastUp;
        }
    },
    adslAturChanConfInterleaveMaxTxRate(new OID(".1.3.6.1.2.1.10.94.1.1.14.1.28")) {
//        @Override
//        public String chsname() {
//            return "交织上行";
//        }
        @Override
        public AdslParam getParamType() {
            return AdslParam.InterLeavedUp;
        }
    }, 
    adslAturConfRateChanRatio(new OID(".1.3.6.1.2.1.10.94.1.1.14.1.16")) {
        @Override
        public AdslParam getParamType() {
            return AdslParam.Other;
        }
    };

    private AdslLineProfileConfOID(OID oid) {
        //super();
        this.oid = oid;
    }
    final private OID oid;

    @Override
    public OID getOID() {
        return oid;
    }

    @Override
    public OID getAppendOID(OID appendOid) {
        return (new OID(oid)).append(appendOid);
    }

    @Override
    public String oidValue() {
        return oid.toString();
    }
//    @Override
//    public RemoteValueType remoteValueType() {
//        return RemoteValueType.Number;
//    }
//
//    @Override
//    public String toString() {
//        return chsname();
//    }
//
//    @Override
//    public String unit() {
//        return "kbps";
//    }
}
